///*
// * To change this template, choose Tools | Templates
// * and open the template in the editor.
// */
//
//package dao.jpa;
//
//import dao.AlunoDAO;
//import java.util.List;
//import javax.persistence.NoResultException;
//import javax.persistence.Query;
//import modelo.Aluno;
//import util.JPAUtil;
//
///**
// *
// * @author visitante
// */
//public class AlunoJpaDAO extends AbstractJpaDao<Aluno, Long> implements AlunoDAO {
//
//    public AlunoJpaDAO() {
//        super(Aluno.class);
//    }
//
//    @Override
//    public List<Aluno> getAll() {
//        return JPAUtil.getEntityManager().createQuery("from Aluno").getResultList();
//    }
//
//    public List<Aluno> getPorNome(String nome) {
//        String s = "select a from Aluno a where upper(a.nome) like upper(?)";
//        Query query = JPAUtil.getEntityManager().createQuery(s);
//        query.setParameter(1, "%" + nome + "%");
//
//        return (List<Aluno>) query.getResultList();
//    }
//
//    public Aluno getPorIdComDisciplinas(Long id) {
//        String s = "select a from Aluno a " +
//                   "left outer join fetch a.listaAlunoDisc ad " +
//                   "left outer join fetch ad.disciplina " +
//                   "where a.id=?";
//        Query query = JPAUtil.getEntityManager().createQuery(s);
//        query.setParameter(1, id);
//
//        return (Aluno) query.getSingleResult();
//    }
//
//    public Aluno getPorId(Long id) {
//        String s = "select a from Aluno a where a.id=?";
//        Query query = JPAUtil.getEntityManager().createQuery(s);
//        query.setParameter(1, id);
//
//        try {
//            return (Aluno) query.getSingleResult();
//        }
//        catch(NoResultException e) {
//            return null;
//        }
//    }
//}
